import { http } from './client';

// 获取用户信息
export function getUserInfo(userId) {
  return http.get(`/user/getUserInfo/${userId}`);
}

// 获取当前登录用户信息，不需要传 userId
export function getCurrentUserInfo() {
  return http.get('/user/getUserInfo');
}

// 更新用户信息（application/x-www-form-urlencoded）
export function updateUserInfo(payload) {
  const params = new URLSearchParams();
  Object.entries(payload || {}).forEach(([k, v]) => {
    if (v !== undefined && v !== null) params.append(k, String(v));
  });
  return http.put('/user/updateUserInfo', {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: params.toString(),
  });
}

// 修改密码（如在我的主页提供入口）
export function updatePassword({ oldPassword, newPassword }) {
  const params = new URLSearchParams();
  if (oldPassword) params.append('oldPassword', String(oldPassword));
  if (newPassword) params.append('newPassword', String(newPassword));
  return http.put('/user/updatePassword', {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: params.toString(),
  });
}

// 更新用户头像（multipart/form-data）
export function updateAvatar(file) {
  const form = new FormData();
  form.append('avatar', file);
  return http.post('/user/updateAvatar', {
    headers: {},
    body: form,
  });
}

// 获取用户偏好设置
export function getUserPreferences() {
  return http.get('/user/preferences');
}

// 更新用户偏好设置（application/json）
export function updateUserPreferences(payload) {
  return http.put('/user/preferences', {
    headers: { 'Content-Type': 'application/json' },
    body: payload,
  });
}

// 重置用户偏好设置
export function resetUserPreferences() {
  return http.post('/user/preferences/reset');
}
